#ifndef BREADTHSEARCHFIRST_H
#define BREADTHSEARCHFIRST_H

#include <time.h>
#include <iostream>

#include <boost/graph/graph_traits.hpp>
#include <boost/graph/adjacency_list.hpp>
#include <boost/graph/dijkstra_shortest_paths.hpp>
#include <boost/graph/dijkstra_shortest_paths_no_color_map.hpp>
#include <boost/graph/bellman_ford_shortest_paths.hpp>
#include <boost/graph/johnson_all_pairs_shortest.hpp>
#include <boost/graph/floyd_warshall_shortest.hpp>
#include <boost/random/linear_congruential.hpp>
#include <boost/graph/random.hpp>

#include "SimpleGraph.h"
#include "CompleteGraph.h"
#include "Generator.h"
#include "Helper.h"

namespace zbp
{
	double breadth_search_first_SimpleGraph_test(zbp::SimpleGraph g, bool display, int s);
	double breadth_search_first_boost_test(int source_vertex, BoostEdge* edge_array, int* weights, int nodes_count, int edges_count, bool display);
	void breath_search_first_tests_run(zbp::SimpleGraph simple_graph, zbp::BoostEdge* boost_edges, int* boost_weights, int nodes_count, int edges_count, int s);
}

#endif